package com.dkm.ec.sale.service;

import java.math.BigDecimal;

import com.dkm.ec.sale.persistence.entity.SaleSkuPo;

public interface SaleSkuService {
	/**
	 * 获取id_为id的sku
	 * @Param id sku的ID
	 * @return SaleSkuPo
	 */
	public SaleSkuPo getSaleSkuPoById(String id);
	/**
	 * 获取id_为id的sku详情
	 * @Param id sku的ID
	 * @return SaleSkuPo
	 */
	public SaleSkuPo getSaleSkuPoDetailById(String id, String callType);

	public void getSkuName(SaleSkuPo saleSkuPo);
	
	public String getSkuNameById(String prodId,String name);
	/**
	 * 根据skuId获取sku主图
	 * @Param id sku的ID
	 * @Param callType 呼叫的方式，app wap web
	 * @return sku主图路径
	 */
	public String getMainProdCloudPath(String skuId, String callType,String picType);
	/**
	 * 根据saleSkuPo获取sku主图
	 * @Param saleSkuPo sku所在po
	 * @Param callType 呼叫的方式，app wap web
	 * @Param picType 呼叫的方式，app wap web
	 */
	public void getMainProdCloudPath(SaleSkuPo saleSkuPo, String callType,String picType);
	/**
	 * 根据skuId获取产品主图
	 * @Param id sku的ID
	 * @Param callType 呼叫的方式，app wap web
	 * @return sku所在产品主图路径
	 */
	public String getMainSkuCloudPath(String skuId, String callType,String picType);
	/**
	 * 根据saleSkuPo获取产品主图
	 * @Param saleSkuPo sku所在po
	 * @Param callType 呼叫的方式，app wap web
	 * 
	 */
	public void getMainSkuCloudPath(SaleSkuPo saleSkuPo, String callType);
	
	/**
	 * 根据saleSkuPo获取产品主图
	 * @Param saleSkuPo sku所在po
	 * @Param callType 呼叫的方式，app wap web
	 * 
	 */
	public void getMainSkuCloudPath(SaleSkuPo saleSkuPo, String callType,String picType);
	/**
	 * 根据saleSkuPo获取solr需要的所有数据
	 * @Param saleSkuPo sku所在po
	 * 
	 */
	public void  getSaleSkuForSolr(SaleSkuPo saleSkuPo);
	
	/**
	 * 根据prodId获取有库存的skuId
	 * @Param prodId 产品ID
	 * 
	 */
	public String getSkuIdByProdId(String prodId);
	
	/**
	 * 通过促销活动计算价格
	 * @param memberId
	 * @param skuId
	 * @return
	 */
	public BigDecimal calPriceForPromo(String memberId, String skuId, String fromType);
	
	public boolean checkPromo(String memberId, String skuId, String fromType);
	
}
